/**
 * Malsha 2014-10-23
 */

TallyPlacementSheet = new Object();

var money_from = Ext.create('Ext.data.Store', {
	fields : [ 'customerName', 'customerId', 'customerType', 'fundid', 'pnameOfBank', 'pbankId', 'snameOfBank', 'sbankId', 'pamount', 'samount', 'status' ]
});

var money_to = Ext.create('Ext.data.Store', {
	fields : [ 'customerName', 'customerId', 'customerType', 'fundid', 'pnameOfBank', 'pbankId', 'snameOfBank', 'sbankId', 'pamount', 'samount', 'status' ]
});

TallyPlacementSheet.getComingInGird = function() {
	var comingIngrid = null;
	comingIngrid = Ext.create('Ext.grid.Panel', {
		title : 'MONEY COMING IN FROM / Receipt',
		id : 'comingIn_grid',
		store : money_from,
		height : 250,
		features : [ {
			ftype : 'summary'
		} ],
		columns : [ {
			header : 'Customer',
			dataIndex : 'customerName',
			width : 150
		}, {
			text : 'Placement Sheet',
			columns : [ {
				header : 'Money Coming In From',
				dataIndex : 'snameOfBank',
				width : 200,
				flex : 1
			}, {
				header : 'LKR Amount',
				dataIndex : 'samount',
				xtype : 'numbercolumn',
				format : '0,000.0000',
				align : 'right',
				width : 130
			} ]
		}, {
			text : 'Receipt',
			columns : [ {
				header : 'Bank Account',
				dataIndex : 'pnameOfBank',
				width : 200,
				flex : 1
			}, {
				header : 'LKR Amount',
				dataIndex : 'pamount',
				xtype : 'numbercolumn',
				format : '0,000.0000',
				align : 'right',
				width : 130
			} ]
		}, {
			header : 'Status',
			dataIndex : 'status',
			width : 130
		} ]
	});
	return comingIngrid;
};

TallyPlacementSheet.GoingOutGrid = function() {
	var goingOutgrid = null;
	goingOutgrid = Ext.create('Ext.grid.Panel', {
		title : 'MONEY COMING OUT TO / Payment',
		id : 'goingout_grid',
		store : money_to,
		height : 250,
		features : [ {
			ftype : 'summary'
		} ],
		columns : [ {
			header : 'Customer',
			dataIndex : 'customerName',
			width : 150
		}, {
			text : 'Placement Sheet',
			columns : [ {
				header : 'Money Coming Out To',
				dataIndex : 'snameOfBank',
				width : 200,
				flex : 1
			}, {
				header : 'LKR Amount',
				dataIndex : 'samount',
				xtype : 'numbercolumn',
				format : '0,000.0000',
				align : 'right',
				width : 130
			} ]
		}, {
			text : 'Payment',
			columns : [ {
				header : 'Bank Account',
				dataIndex : 'pnameOfBank',
				width : 200,
				flex : 1
			}, {
				header : 'LKR Amount',
				dataIndex : 'pamount',
				xtype : 'numbercolumn',
				format : '0,000.0000',
				align : 'right',
				width : 150
			} ]
		}, {
			header : 'Status',
			dataIndex : 'status',
			width : 130
		} ]
	});
	return goingOutgrid;
};

TallyPlacementSheet.getCenterPanel = function() {

	var comingin = TallyPlacementSheet.getComingInGird();
	var goingout = TallyPlacementSheet.GoingOutGrid();
	money_to.removeAll();
	money_from.removeAll();

	formpanel = Ext.create('Ext.form.Panel', {
		title : 'Placement Sheet',
		bodyPadding : 20,
		autoScroll : true,
		frame : true,
		defaults : {
			labelWidth : 110,
			anchor : '90%',
		},
		items : [ {
			xtype : 'fieldcontainer',
			layout : 'hbox',
			items : [ {
				xtype : 'datefield',
				fieldLabel : 'Date',
				labelWidth : 50,
				width : 225,
				id : 'date',
				name : 'date',
				value : new Date(),
				format : 'd/m/Y',
				submitFormat : 'd/m/Y',
				padding : '0 15 0 0',
			}, {
				xtype : 'combo',
				fieldLabel : 'Fund<span style="color:red">*</span>',
				flex : 1,
				labelWidth : 90,
				anchor : '70%',
				id : 'fund',
				padding : '0 10 0 0',
				store : Ext.create('Ext.data.Store', {
					fields : [ 'id', 'name', 'code', 'unitValue' ]
				}),
				valueField : 'id',
				displayField : 'code',
				emptyText : 'Select a Fund...',
				isLoaded : false,
				allowBlank : false,
				msgTarget : 'under',
				name : 'fund',
				queryMode : 'local',
				tpl : Ext.create('Ext.XTemplate', '<tpl for=".">', '<div class="x-boundlist-item">{code} - {name}</div>', '</tpl>'),
				displayTpl : Ext.create('Ext.XTemplate', '<tpl for=".">', '{code} - {name}', '</tpl>'),
				listeners : {
					expand : function(combo, opt) {
						if (!combo.isLoaded) {
							Ext.Ajax.request({
								url : 'getFundVsUnitValue.action',
								success : function(response) {
									var obj = Ext.decode(response.responseText);
									combo.getStore().loadRawData(obj.fundDtos);
									combo.isLoaded = true;
								}
							});
						}
					}
				},
				listConfig : {
					listeners : {
						itemclick : function(list, record) {
							Ext.Ajax.request({
								params : {
									"date" : Ext.Date.format(Ext.getCmp('date').getValue(), 'd/m/Y'),
									"fundId" : record.get('id'),
								},
								url : 'getTallyDetails.action',
								success : function(response) {
									var obj = Ext.decode(response.responseText);
									money_from.loadRawData(obj.reportDtosfrom);
									money_to.loadRawData(obj.reportDtosto);
								}
							});

						}
					}
				}
			} ]
		}, comingin, goingout ],
		buttonAlign : 'center',
		buttons : [ {
			text : 'Cancel',
			handler : function() {
				App.Core.removeScreen();
			}
		}, {
			text : 'Reset',
			handler : function() {
			}
		} ]
	});

	return formpanel;
};